<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>

<body>
    <div id="demo">
        <p>firstName: <input type="text" name="" v-model="firstName"></p>
        <p>lastName: <input type="text" name="" v-model="lastName"></p>
        <p>fullName: {{fullName}}</p>
    </div>
    <script>
        Vue.config.productionTip = false
        const vm = new Vue({
            el: '#demo',
            data: {
                firstName:'zhang',
                lastName:'san'
            },
            computed:{
                // 计算属性的值，是有普通属性或其他计算属性计算得来的。会随着数据源的变化而变化
                // fullName的身份是一个属性,并且也做了数据代理，在vm身上有，也有getter和setter
                // 当读取fullName值的时候，get函数会调用，并且函数的返回值就是fullName的属性值
                fullName:{
                    get(){
                        console.log('getter this: ', this)
                        return this.firstName[0].toUpperCase() + this.firstName.slice(1) + '-' + this.lastName
                    }
                }
            }
        })

        

        console.log(vm)
    </script>
</body>

</html>